/**
 * 
 */
package br.com.skynix.tcmc.model.seguranca;

import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import javax.validation.constraints.Size;

import org.hibernate.annotations.ForeignKey;

import br.com.skynix.tcmc.base.model.EntidadeDominio;

/**
 * @author davi
 * 
 */
@Entity
@Table(name = "tb_funcionalidade")
public class Funcionalidade extends EntidadeDominio {
	@Size(max = 255)
	@Column(nullable = true, length = 255)
	private String imagem;

	@ManyToMany
	@JoinTable(name = "tb_menu_x_funcionalidade", joinColumns = @JoinColumn(
			name = "id_menu_fk", referencedColumnName = "id",
			table = "tb_menu", nullable = false),
			inverseJoinColumns = @JoinColumn(name = "id_funcionalidade_fk",
					referencedColumnName = "id", table = "tb_funcionalidade",
					nullable = false))
	@ForeignKey(name = "FK001_menu_x_funcionalidade")
	private Set<Menu> menus;

	/**
	 * @return the imagem
	 */
	public String getImagem() {
		return imagem;
	}

	/**
	 * @param imagem the imagem to set
	 */
	public void setImagem(String imagem) {
		this.imagem = imagem;
	}

	/**
	 * @return the menus
	 */
	public Set<Menu> getMenus() {
		return menus;
	}

	/**
	 * @param menus the menus to set
	 */
	public void setMenus(Set<Menu> menus) {
		this.menus = menus;
	}
}
